#include "Position.h"
#include "Texture.h"
#include "color.h"
#include "Circular.h"
#include "Element.h"
#include "Velocity.h"
#include "Sketcher.h"
#include "Velocity.h"
#pragma once

class Ball: public Circular, public Element
{
	public:Ball();

	public:Ball(Position * position);

	public:Ball(Position * position, Velocity *velocity);

	/*----------------Atributos-------------------------*/
	private: Position *position;

	private: Velocity *velocity;

	private: Texture *texture;
	
	private: float radius;

	private: Color * elementColor;

	private: Color * lineColor;

	private: Sketcher* sketcher;

	/*-------------Getters & Setters--------------------*/

	public: virtual void setPosition(Position *position);

	public: virtual Position *getPosition();

	public: virtual Velocity* getVelocity();

	public: virtual void setVelocity(Velocity * velocity);

	public: virtual Texture *getTexture();

	public: virtual void setTexture(Texture *texture);

	public: virtual Color * getElementColor();

	public: virtual void setElementColor(Color * color);

	public: virtual Color * getLineColor();

	public: virtual void setLineColor(Color * color);

	public: virtual void setRadius(float radius);

	public: virtual float getRadius();

	public: virtual float getMinXPos();

	public: virtual float getMinYPos();

	public: virtual float getMaxXPos();

	public: virtual float getMaxYPos();

	/*-------------Metodos------------------------------*/	
	
	public: virtual void draw();	

	public: void move();
	
	/*-----------------Destructor-----------------------*/
	
	public:virtual ~Ball();
};
